package com.songlanyun.modules.chain.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.songlanyun.common.drive.RootEntity;
import com.songlanyun.common.enums.ChainConstant;
import com.songlanyun.modules.account.entity.UserVerifiedEntity;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @ClassName: ChainEntity
 * @Description: TODO
 * @author: zhangqh
 * @Date: 2023/11/4 9:08
 */
@Data
@TableName(value = "yxt_account_chain")
public class ChainEntity extends RootEntity<Long, ChainEntity> implements Serializable {

    @TableId
    private Long id;

    /**
     * 交易编号
     */
    private String bsId;

    /**
     * 交易类型 0: 提现，1: 充值
     */
    private ChainConstant.ChainBsType bsType;

    /**
     * 交易状态
     * bs_type=0 时 -1: 审核不通过  0: 保存 1:审核通过提现中 2: 提现完成 3: 积分减少完成
     * bs_type=1 时 0: 保存 3 积分增加完成
     */
    private ChainConstant.ChainBsStatus bsStatus;

    /**
     * yxt_account 表 id
     */
    private Long uid;

    /**
     * 转账网络
     */
    private ChainConstant.ChainTransferNet transferNet;

    /**
     * 支付方式
     */
    private ChainConstant.ChainPayType payType;

    /**
     * 提现目标地址
     */
    private String toAddress;

    /**
     * 提现/充值金额
     */
    private BigDecimal amount;

    /**
     * 实际转账金额
     */
    private BigDecimal realAmount;

    /**
     * 手续费
     */
    private BigDecimal handlingFee;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 审核时间
     */
    private Date auditTime;

    /**
     * 提现回调时间
     */
    private Date withdrawalTime;

    /**
     * 积分处理完成时间
     */
    private Date dealTime;

    /**
     * 获得当前实例的标识（id）
     *
     * @return
     */
    @Override
    public Long getIdentity() {
        return id;
    }
}
